This invention relates to preventing unauthorized usage of a software product. This invention also relates to preventing usage of a software product by an unauthorized computer.
In recent years, there is a method of providing a software product in which a trial version of the software product is provided to its users at first. The trial version imposes limitations on its available term, function and so on.
When a user who has used the trial version hopes to use the complete version, the user asks the software supplier to sell the right to use the software product. After receiving the price of the right, the software supplier cancels the limitation in some way. There are many ways for canceling the limitation. One practical example of the ways is that: (1) the software supplier provides to users a complete version of which functions are partly inactive by locking a key as its trial version; (2) a user pays the price for the right to use the software product on one computer to the software supplier; (3) the user receives the key; and (4) the user unlocks the trial version by the key in order to cancel the limitation.
In the way like this example, however, a user who has received the key may cancel the limitation on plural computers and install the complete version into not only authorized computer but also unauthorized ones.
In order to solve this problem, Japanese Unexamined Patent Publication No. Hei 10-198569, namely, 198569/1998 shows a method that a host computer receives user information from a user computer and then generates, from the user information, a key available for resuming an installation into the user computer. In this method, the key is generated for each computer so that an unauthorized computer cannot resume the installation by the key.
Japanese Unexamined Patent Publication No. Hei 8-84139, namely. 84139/1996 shows a method that: (1) a user computer generates a key B from a timestamp and sends the key B to a host computer; (2) the host computer generates a key C from the key B and sends the key C to the user computer; (3) the user inputs the key C into the user computer during an installation process; and (4) the user computer generates a key D which permits the installation from the key C. In this method like the above-mentioned method, the key C is generated for each user computer and these methods restrict a user to install a software product into one computer.
Both of these methods merely restrict to install a software product. After installing the software product into a computer, all of the software product modules necessary for execution on the computer are stored into its storage device. Consequently, if a user copies all of the modules from an authorized computer to an unauthorized one, the user can run the software product on the unauthorized one.
Other security attempts have included a method that verifies whether an installed software product is authorized or not. In this method, a user computer generates registration information that denotes an authorized software product installed into the user computer, and then verifies the registration information when the user directs the user computer to execute the software product.
In this method, the registration information is composed of information about installed software products so that the registration information is easily analyzed and falsified as if a software product is installed into an authorized computer.
It is an object of this invention to provide a method of installing a software product only by a user authorized by a software supplier, and of preventing unauthorized usage by copying installed modules of the software product from an authorized computer to another computer.
According to the present invention, a method of installing 2 software product S to first computer with authorization by second computer is provided. This method comprises the steps of: (1) generating a code C from registration information that designates information about software products having already been installed to the first computer and an Identifier that designates the software product S on both the first and the second computer; (2) comparing the code C1 generated by the first computer with the code C2 generated by the second computer, and (3) installing the software product 5 to the first computer if the code C1 coincides with the code C2 is provided.
The software product S may be functionally limited by a lock unlocked by the use of a key code K and comprise; further generating a code D by performing an operation P which is determined from the code C2 to the key code K at STEP (1); generating a code Kxe2x80x2 by performing an operation Q which is the inverse operation of the operation P and determined from the code C1 to the code D instead of STEP (2); and installing the software product S to the first computer if the key code Kxe2x80x2 successfully unlocks the lock on the software product S instead of STEP (3).
The software product S may be locked by encrypting a part or the whole of the software product. In this case, the encrypted software product is decrypted with the key code K.
The registration information may comprise an identifier which is assigned to-a software product which has already been installed to the first computer, together with the code C generated for installing the software product
The identifier may be a timestamp designating the time when the first computer is directed installation of the software product S.
The first computer may be used by the buyer of the software product S and the second computer is used by the supplier of the software product S.
Further, according to the present invention, a system for installing a software product S to first computer with authorization by second computer is provided. In the system, the first computer comprises: a first generator for generating a code C1 from registration information that designates information about software products having already been installed to on the first computer and an identifier that designates the software product S in the first computer; a comparator for comparing the code C1 generated by the first computer with the code C2 generated by the second computer; and an installer for installing the software product S to the first computer if the comparator judges that the C1 coincides with C2. The second computer comprises a second generator for generating a code C2 from the registration information and the identifier in the second computer.
The software product S may be functionally limited by a lock unlocked by the use of a key code K. In this case, the first generator further generates a code D by performing an operation P which is determined from the code C2 to the key code K. The second generator generates a code Kxe2x80x2 by performing an operation Q which is the inverse operation of the operation P and determined from the code C1 to the code D. The installer installs the software product S to the first computer if the key code Kxe2x80x2 successfully unlocks the lock on the software product S.
The software product S may be locked by encrypting a part or the whole of the software product. In this case, the first computer further comprises a decryption unit for decrypting the encrypted software product with the key code K.
The registration information may comprise an identifier. The identifier is assigned to a software product that has already been installed to the first computer, together with the code C generated for installing the software product.
The identifier may be a timestamp designating the time when the first computer is directed installation of the software product S.